//******************************************************//
//														//
//					ClienteFisico.java					//
//														//
//******************************************************//


package Actores;

import java.util.Scanner;

import Persona.PersonaFisica;

public class ClienteFisico extends Cliente {
    private PersonaFisica datosPersona;

    // Constructor ====================================
        
    public ClienteFisico(Integer id, String n, String a, String dt, Integer dn, String d) {
        super(id);

        datosPersona = new PersonaFisica(n, a, dt, dn, d);
    }

    // Setters ========================================
 
    public void setNombre(String s) {
        datosPersona.setNombre(s);
    }
    
    public void setDomicilio(String s) {
        datosPersona.setDomicilio(s);
    }
    
    public void setApellido(String s) {
        datosPersona.setApellido(s);
    }
    
    public void setTipoDocumento(String s) {
        datosPersona.setTipoDocumento(s);
    }
    
    public void setNroDocumento(Integer l) {
        datosPersona.setNroDocumento(l);
    }
    
    // Getters ========================================
    
    public String getNombre() {
        return datosPersona.getNombre();
    }

    public String getDomicilio() {
        return datosPersona.getDomicilio();
    }

    public String getApellido() {
        return datosPersona.getApellido();
    }

    public String getTipoDocumento() {
        return datosPersona.getTipoDocumento();
    }
    
    public Integer getNroDocumento() {
        return datosPersona.getNroDocumento();
    }

    // Otras funciones ================================

    public String toString() {
        return "ID: " + this.getID() +
                "\n" + this.datosPersona.toString();
    }

    public void modificarCliente() {
    	Scanner entrada = new Scanner(System.in);
    	int op;
        
        do {
            System.out.print("Que desea modificar: (1/2/3/4/0).\n"
		    + "1) Nombre.\n"
		    + "2) Apellido.\n"
		    + "3) Tipo y Nro de documento.\n"
		    + "4) Domicilio.\n"
		    + "0) Terminar.\n\n"
		    + "Opcion: ");
	    op = entrada.nextInt();
	    
	    switch (op) {
		 case 1: {
		      System.out.print("Ingrese nuevo nombre: ");
		      String nombreN = entrada.next();
		      
		      setNombre(nombreN);
		      break;
		 }
		 case 2: {
		      System.out.print("Ingrese nuevo apellido: ");
		      String apellidoN = entrada.next();
		      
		      setApellido(apellidoN);
		      break;
		 }
		 case 3: {
		      String tipo;
		      do {
			   System.out.println("Ingrese Tipo de documento:  DNI/LE/LC/CI");
			   tipo = entrada.next();
		      } while (!tipo.equalsIgnoreCase("DNI")
			      && !tipo.equalsIgnoreCase("LE")
			      && !tipo.equalsIgnoreCase("LC")
			      && !tipo.equalsIgnoreCase("CI"));
		      System.out.print("Ingrese nuevo nro de documento: ");
		      Integer nroDoc = entrada.nextInt();
		      
		      this.setTipoDocumento(tipo);
		      this.setNroDocumento(nroDoc);
		      break;
		 }
		 case 4: {
		      System.out.print("Ingrese nuevo domicilio: ");
		      String domicilioN = entrada.next();

		      setDomicilio(domicilioN);
		      break;
		 }
		 default:
	    }//SWITCH
    } while (op != 0);
    System.out.println("Cliente modificado correctamente.");
    }    
}